<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Flow: Class Hierarchy</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Flow<span id="projectnumber">&#160;2.0.0</span>
   </div>
   <div id="projectbrief">Flow project: Full implementation reference.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle"><div class="title">Class Hierarchy</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">
<p><a href="inherits.html">Go to the graphical class hierarchy</a></p>
This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><b>std::atomic&lt; T &gt;</b></td><td class="desc">STL class </td></tr>
<tr id="row_0_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Config_1_1Atomic__raw__sev.html" target="_self">flow::log::Config::Atomic_raw_sev</a></td><td class="desc">Trivial wrapper of <code>atomic&lt;raw_sev_t&gt;</code> which adds a couple of things to make it possible to construct, and therefore use, a <code>vector</code> of such <code>atomic</code>s </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Basic__blob.html" target="_self">flow::util::Basic_blob&lt; Allocator, S_SHARING_ALLOWED &gt;</a></td><td class="desc">A hand-optimized and API-tweaked replacement for <code>vector&lt;uint8_t&gt;</code>, i.e., buffer of bytes inside an allocated area of equal or larger size; also optionally supports limited garbage-collected memory pool functionality and SHM-friendly custom-allocator support </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Basic__blob.html" target="_self">flow::util::Basic_blob&lt; std::allocator&lt; uint8_t &gt;, S_SHARING_ALLOWED &gt;</a></td><td class="desc"></td></tr>
<tr id="row_2_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" target="_self">flow::util::Blob_with_log_context&lt; S_SHARING_ALLOWED &gt;</a></td><td class="desc"><a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> that works in regular heap (and is itself placed in heap or stack) and memorizes a <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a>, enabling easier logging albeit with a small perf trade-off </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><b>std::basic_string_view&lt; Char &gt;</b></td><td class="desc">STL class </td></tr>
<tr id="row_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Basic__string__view.html" target="_self">flow::util::Basic_string_view&lt; Ch, Traits &gt;</a></td><td class="desc">Essentially alias for a C++17-conforming string-view class template, which is a very lightweight <code>std::string</code>-like representation of a character sequence already in memory </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1perf_1_1Checkpointing__timer_1_1Checkpoint.html" target="_self">flow::perf::Checkpointing_timer::Checkpoint</a></td><td class="desc">The entirety of the information recorded with each <a class="el" href="classflow_1_1perf_1_1Checkpointing__timer.html#a9e6078df059d5626ab5774f0a33fbad7" title="Records a checkpoint, which takes a sample of all enabled Clock_types&#39; clocks and records the corresp...">Checkpointing_timer::checkpoint()</a> call; it contains the <code>Duration</code> values (for each <code>Clock_type</code>) with the time elapsed since either the preceding <code>T.checkpoint()</code> or construction </td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Component.html" target="_self">flow::log::Component</a></td><td class="desc">A light-weight class, each object storing a <em>component</em> payload encoding an <code>enum</code> value from <code>enum</code> type of user's choice, and a light-weight ID of that <code>enum</code> type itself </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1log_1_1Config_1_1Component__config.html" target="_self">flow::log::Config::Component_config</a></td><td class="desc">The set of config stored for each distinct (as determined by <a class="el" href="classflow_1_1log_1_1Component.html#a3ff8ff4d75add447b3e10ded5430833d" title="Returns typeid(Payload), where Payload was the template param used when calling the originating one-a...">Component::payload_type()</a>, essentially C++ built-in <code>std::type_info</code>) component payload type (in English &ndash; component <code>enum class</code>) </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Component__payload__type__dict.html" target="_self">flow::log::Component_payload_type_dict&lt; Dict_by_ptr_t, Dict_by_val_t &gt;</a></td><td class="desc">An internal-use dictionary for fast lookup of small <code>Cfg</code> values keyed by <code>type_info</code> objects; impl = 1 <code>Component_payload_type_dict_by_val_...</code> and 1 <code>Component_payload_type_dict_by_ptr_...</code> </td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Component__payload__type__dict.html" target="_self">flow::log::Component_payload_type_dict&lt; value_for_exposition&lt; Component_config &gt;, value_for_exposition&lt; Component_config &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Component__payload__type__dict__by__ptr__via__array.html" target="_self">flow::log::Component_payload_type_dict_by_ptr_via_array&lt; Cfg_t &gt;</a></td><td class="desc">Exactly equivalent to <a class="el" href="classflow_1_1log_1_1Component__payload__type__dict__by__ptr__via__map.html" title="An internal-use dictionary for fast lookup of small Cfg values keyed by type_info objects,...">Component_payload_type_dict_by_ptr_via_map</a> but with impl = array with optimized linear search </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Component__payload__type__dict__by__ptr__via__map.html" target="_self">flow::log::Component_payload_type_dict_by_ptr_via_map&lt; Map_to_cfg_t &gt;</a></td><td class="desc">An internal-use dictionary for fast lookup of small <code>Cfg</code> values keyed by <code>type_info</code> objects, given the guarantee that any type involved shall have 1 uniquely-addressed such object; impl = map </td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Component__payload__type__dict__by__ptr__via__sorted__array.html" target="_self">flow::log::Component_payload_type_dict_by_ptr_via_sorted_array&lt; Cfg_t &gt;</a></td><td class="desc">Exactly equivalent to <a class="el" href="classflow_1_1log_1_1Component__payload__type__dict__by__ptr__via__array.html" title="Exactly equivalent to Component_payload_type_dict_by_ptr_via_map but with impl = array with optimized...">Component_payload_type_dict_by_ptr_via_array</a> but with impl = sorted array susceptible to binary search </td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Component__payload__type__dict__by__val__via__array.html" target="_self">flow::log::Component_payload_type_dict_by_val_via_array&lt; Cfg_t &gt;</a></td><td class="desc">Exactly equivalent to <a class="el" href="classflow_1_1log_1_1Component__payload__type__dict__by__val__via__map.html" title="An internal-use dictionary for fast lookup of small Cfg values keyed by type_info objects,...">Component_payload_type_dict_by_val_via_map</a> but with impl = array with linear search (likely by string equality) </td></tr>
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Component__payload__type__dict__by__val__via__map.html" target="_self">flow::log::Component_payload_type_dict_by_val_via_map&lt; Map_to_cfg_t &gt;</a></td><td class="desc">An internal-use dictionary for fast lookup of small <code>Cfg</code> values keyed by <code>type_info</code> objects, given NO guarantee that any type involved shall have 1 uniquely-addressed such object; impl = map </td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Component__payload__type__dict__by__val__via__sorted__array.html" target="_self">flow::log::Component_payload_type_dict_by_val_via_sorted_array&lt; Cfg_t &gt;</a></td><td class="desc">Exactly equivalent to <a class="el" href="classflow_1_1log_1_1Component__payload__type__dict__by__val__via__array.html" title="Exactly equivalent to Component_payload_type_dict_by_val_via_map but with impl = array with linear se...">Component_payload_type_dict_by_val_via_array</a> but with impl = sorted array susceptible to binary search (likely with string lexicographic less-than comparisons) </td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Config.html" target="_self">flow::log::Config</a></td><td class="desc">Class used to configure the filtering and logging behavior of <code><a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a></code>s; its use in your custom <code><a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a></code>s is optional but encouraged; supports dynamically changing filter settings even while concurrent logging occurs </td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits.html" target="_self">flow::util::Container_traits&lt; Container &gt;</a></td><td class="desc">Properties of various container types </td></tr>
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits_3_01boost_1_1unordered__set_3_01T_01_4_01_4.html" target="_self">flow::util::Container_traits&lt; boost::unordered_set&lt; T &gt; &gt;</a></td><td class="desc">Traits of <code>boost::unordered_set</code> </td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits_3_01std_1_1map_3_01K_00_01V_01_4_01_4.html" target="_self">flow::util::Container_traits&lt; std::map&lt; K, V &gt; &gt;</a></td><td class="desc">Traits of <code>std::map</code> </td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits_3_01std_1_1set_3_01T_01_4_01_4.html" target="_self">flow::util::Container_traits&lt; std::set&lt; T &gt; &gt;</a></td><td class="desc">Traits of <code>std::set</code> </td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits_3_01util_1_1Linked__hash__map_3_01K_00_01V_01_4_01_4.html" target="_self">flow::util::Container_traits&lt; util::Linked_hash_map&lt; K, V &gt; &gt;</a></td><td class="desc">Traits of <a class="el" href="classflow_1_1util_1_1Linked__hash__map.html" title="An object of this class is a map that combines the lookup speed of a boost::unordered_map&lt;&gt; and order...">flow::util::Linked_hash_map</a> </td></tr>
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits_3_01util_1_1Linked__hash__set_3_01T_00_01Hash_00_01Pred_01_4_01_4.html" target="_self">flow::util::Container_traits&lt; util::Linked_hash_set&lt; T, Hash, Pred &gt; &gt;</a></td><td class="desc">Traits of <a class="el" href="classflow_1_1util_1_1Linked__hash__set.html" title="An object of this class is a set that combines the lookup speed of an unordered_set&lt;&gt; and ordering an...">flow::util::Linked_hash_set</a> </td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1cfg_1_1Option__set_1_1Declare__options__func__args.html" target="_self">flow::cfg::Option_set&lt; Value_set &gt;::Declare_options_func_args</a></td><td class="desc">Internal-use structure to use with <a class="el" href="classflow_1_1cfg_1_1Option__set.html#ac6755bc762fc40b1ae8f4bd47c55bd39" title="Short-hand for the ever-important callback passed to the main Option_set constructor.">Declare_options_func</a> callback </td></tr>
<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Basic__blob_1_1Deleter__raw.html" target="_self">flow::util::Basic_blob&lt; Allocator, S_SHARING_ALLOWED &gt;::Deleter_raw</a></td><td class="desc">Internal deleter functor used if and only if <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ab79d366c55643022eaf9e0d7378165d7" title="true if Allocator_raw underlying allocator template is simply std::allocator; false otherwise.">S_IS_VANILLA_ALLOC</a> is <code>false</code> and therefore only with <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a30fe0a61f8b83e7588bdc4a88dbaabae" title="The smart-pointer type used for m_buf_ptr; a custom-allocator-and-SHM-friendly impl and parameterizat...">Buf_ptr</a> being <code>boost::interprocess::shared_ptr</code> or deleter-parameterized <code>unique_ptr</code> </td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1perf_1_1Duration__set.html" target="_self">flow::perf::Duration_set</a></td><td class="desc">Convenience wrapper around an <code>array&lt;Duration, N&gt;</code>, which stores a duration for each of the N possible clock types in <a class="el" href="namespaceflow_1_1perf.html#ad61fb186191e4bb824d14601d11a2eb0" title="Clock types supported by flow::perf module facilities, perf::Checkpointing_timer in particular.">perf::Clock_type</a> </td></tr>
<tr id="row_25_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_25_" class="arrow" onclick="toggleFolder('25_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classboost_1_1chrono_1_1duration__units__default.html" target="_self">boost::chrono::duration_units_default</a></td><td class="desc"></td></tr>
<tr id="row_25_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Duration__units__beautified.html" target="_self">flow::util::Duration_units_beautified</a></td><td class="desc">Internally used class that enables some of the activities of <a class="el" href="namespaceflow_1_1util.html#a0955a29930075ac1fe393896c089b911" title="Sets certain chrono-related formatting on the given ostream that results in a consistent,...">beautify_chrono_ostream()</a> API </td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Dynamic__cfg__context.html" target="_self">flow::cfg::Dynamic_cfg_context&lt; Root, Target, Target_ptr &gt;</a></td><td class="desc">Class which facilitates managing access to a dynamic configuration </td></tr>
<tr id="row_27_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_27_" class="arrow" onclick="toggleFolder('27_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><b>boost::enable_shared_from_this</b></td><td class="desc"></td></tr>
<tr id="row_27_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Drop__timer.html" target="_self">flow::net_flow::Drop_timer</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> class that maintains the Drop Timer for DATA packet(s) to have been sent out over a connection but not yet acknowledged by the receiver </td></tr>
<tr id="row_27_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Event__set.html" target="_self">flow::net_flow::Event_set</a></td><td class="desc">A user-set collection of sockets and desired conditions on those sockets (such as: "socket has data
to read"), with the ability to wait for those conditions to become true and signal the user when so </td></tr>
<tr id="row_27_2_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_27_2_" class="arrow" onclick="toggleFolder('27_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" target="_self">flow::net_flow::Peer_socket</a></td><td class="desc">A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support </td></tr>
<tr id="row_27_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1asio_1_1Peer__socket.html" target="_self">flow::net_flow::asio::Peer_socket</a></td><td class="desc">A <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">net_flow::Peer_socket</a> that adds integration with boost.asio </td></tr>
<tr id="row_27_3_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_27_3_" class="arrow" onclick="toggleFolder('27_3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Server__socket.html" target="_self">flow::net_flow::Server_socket</a></td><td class="desc">A server socket able to listen on a single Flow port for incoming connections and return peer sockets (<a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> objects) to the local user once such connections are established </td></tr>
<tr id="row_27_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1asio_1_1Server__socket.html" target="_self">flow::net_flow::asio::Server_socket</a></td><td class="desc">A <a class="el" href="classflow_1_1net__flow_1_1Server__socket.html" title="A server socket able to listen on a single Flow port for incoming connections and return peer sockets...">net_flow::Server_socket</a> that adds integration with boost.asio </td></tr>
<tr id="row_28_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_28_" class="arrow" onclick="toggleFolder('28_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classboost_1_1system_1_1error__category.html" target="_self">boost::system::error_category</a></td><td class="desc"></td></tr>
<tr id="row_28_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1error_1_1Category.html" target="_self">flow::net_flow::error::Category</a></td><td class="desc">The <a class="el" href="namespaceboost_1_1system.html" title="We may add some ADL-based overloads into this namespace outside flow.">boost.system</a> category for errors returned by the <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> Flow module </td></tr>
<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1cfg_1_1Final__validator__func.html" target="_self">flow::cfg::Final_validator_func&lt; Value_set &gt;</a></td><td class="desc">Utility/traits type to concisely work with final-validation functions when calling methods like <a class="el" href="classflow_1_1cfg_1_1Config__manager.html#a22bfec8082d0c7b5dff9ee7e98865707" title="Invoke this after construction to load the permanent set of static config from config sources includi...">Config_manager::apply_static()</a> </td></tr>
<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1Function.html" target="_self">flow::Function&lt; Signature &gt;</a></td><td class="desc"></td></tr>
<tr id="row_31_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_31_" class="arrow" onclick="toggleFolder('31_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><b>std::function</b></td><td class="desc"></td></tr>
<tr id="row_31_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1Function_3_01Result_07Args_8_8_8_08_4.html" target="_self">flow::Function&lt; Result(Args...)&gt;</a></td><td class="desc">Intended as the polymorphic function wrapper of choice for Flow, internally and externally; to be used instead of <code>std::function</code> or <code>boost::function</code> </td></tr>
<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1Function.html" target="_self">flow::Function&lt; std::ostream &amp;(std::ostream &amp;)&gt;</a></td><td class="desc"></td></tr>
<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1Function.html" target="_self">flow::Function&lt; void(bool drop_all_packets)&gt;</a></td><td class="desc"></td></tr>
<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1Function.html" target="_self">flow::Function&lt; void(bool)&gt;</a></td><td class="desc"></td></tr>
<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1Function.html" target="_self">flow::Function&lt; void(const Declare_options_func_args &amp;args)&gt;</a></td><td class="desc"></td></tr>
<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1Function.html" target="_self">flow::Function&lt; void(const Error_code &amp;err_code)&gt;</a></td><td class="desc"></td></tr>
<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1Function.html" target="_self">flow::Function&lt; void(flow::log::Ostream_log_msg_writer *, const flow::log::Msg_metadata &amp;, flow::util::Basic_string_view)&gt;</a></td><td class="desc"></td></tr>
<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Ack__packet_1_1Individual__ack.html" target="_self">flow::net_flow::Ack_packet::Individual_ack</a></td><td class="desc">Specifies the <em>incoming</em> (post-deserialization) acknowledgment of a single received <a class="el" href="structflow_1_1net__flow_1_1Data__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level DATA packet.">Data_packet</a> </td></tr>
<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket_1_1Individual__ack.html" target="_self">flow::net_flow::Peer_socket::Individual_ack</a></td><td class="desc">Metadata describing the data sent in the acknowledgment of an individual received packet </td></tr>
<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Ack__packet_1_1Individual__ack__rexmit__off.html" target="_self">flow::net_flow::Ack_packet::Individual_ack_rexmit_off</a></td><td class="desc">Specifies the <em>outgoing</em> (pre-serialization) acknowledgment of a single received <a class="el" href="structflow_1_1net__flow_1_1Data__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level DATA packet.">Data_packet</a>, when retranmission is disabled on the socket </td></tr>
<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Ack__packet_1_1Individual__ack__rexmit__on.html" target="_self">flow::net_flow::Ack_packet::Individual_ack_rexmit_on</a></td><td class="desc">Equivalent of <code><a class="el" href="structflow_1_1net__flow_1_1Ack__packet_1_1Individual__ack__rexmit__off.html" title="Specifies the outgoing (pre-serialization) acknowledgment of a single received Data_packet,...">Individual_ack_rexmit_off</a></code> but for sockets with retransmission enabled </td></tr>
<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structboost_1_1system_1_1is__error__code__enum_3_1_1flow_1_1net__flow_1_1error_1_1Code_01_4.html" target="_self">boost::system::is_error_code_enum&lt;::flow::net_flow::error::Code &gt;</a></td><td class="desc">Ummm &ndash; it specializes this <code>struct</code> to &ndash; look &ndash; the end result is <a class="el" href="namespaceboost_1_1system.html" title="We may add some ADL-based overloads into this namespace outside flow.">boost.system</a> uses this as authorization to make <code>enum</code> <code>Code</code> convertible to <code>Error_code</code> </td></tr>
<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Linked__hash__map.html" target="_self">flow::util::Linked_hash_map&lt; Key, Mapped, Hash, Pred &gt;</a></td><td class="desc">An object of this class is a map that combines the lookup speed of a <code>boost::unordered_map&lt;&gt;</code> and ordering and iterator stability capabilities of an <code>std::list&lt;&gt;</code> </td></tr>
<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Linked__hash__map.html" target="_self">flow::util::Linked_hash_map&lt; Event_type, Sockets &gt;</a></td><td class="desc"></td></tr>
<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Linked__hash__map.html" target="_self">flow::util::Linked_hash_map&lt; Sequence_number, boost::shared_ptr&lt; Sent_packet &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Linked__hash__set.html" target="_self">flow::util::Linked_hash_set&lt; Key, Hash, Pred &gt;</a></td><td class="desc">An object of this class is a set that combines the lookup speed of an <code>unordered_set&lt;&gt;</code> and ordering and iterator stability capabilities of an <code>std::list&lt;&gt;</code> </td></tr>
<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Linked__hash__set.html" target="_self">flow::util::Linked_hash_set&lt; Peer_socket_ptr &gt;</a></td><td class="desc"></td></tr>
<tr id="row_48_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_48_" class="arrow" onclick="toggleFolder('48_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Log__context.html" target="_self">flow::log::Log_context</a></td><td class="desc">Convenience class that simply stores a <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> and/or <a class="el" href="classflow_1_1log_1_1Component.html" title="A light-weight class, each object storing a component payload encoding an enum value from enum type o...">Component</a> passed into a constructor; and returns this <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> and <a class="el" href="classflow_1_1log_1_1Component.html" title="A light-weight class, each object storing a component payload encoding an enum value from enum type o...">Component</a> via <a class="el" href="classflow_1_1log_1_1Log__context.html#af4db395042b065b00398cd59845dcb4d" title="Returns the stored Logger pointer, particularly as many FLOW_LOG_*() macros expect.">get_logger()</a> and <a class="el" href="classflow_1_1log_1_1Log__context.html#a8a5fef42dc2cedf3c0d1a6e83beb2948" title="Returns reference to the stored Component object, particularly as many FLOW_LOG_*() macros expect.">get_log_component()</a> public accessors </td></tr>
<tr id="row_48_0_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_48_0_" class="arrow" onclick="toggleFolder('48_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Config__manager.html" target="_self">flow::cfg::Config_manager&lt; Value_set, Null_value_set &gt;</a></td><td class="desc"></td></tr>
<tr id="row_48_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Static__config__manager.html" target="_self">flow::cfg::Static_config_manager&lt; Value_set &gt;</a></td><td class="desc">A <code><a class="el" href="classflow_1_1cfg_1_1Config__manager.html" title="Manages a config setup, intended for a single daemon process, by maintaining 1 or more set(s) of stat...">Config_manager</a></code>-related adapter-style class that manages a simple config setup involving a single (though arbitrarily complex) <code><a class="el" href="classflow_1_1cfg_1_1Option__set.html" title="The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a giv...">Option_set</a>&lt;&gt;</code>-ready raw value <code>struct</code> config store type <code>Value_set</code>, meant to be used only in static fashion </td></tr>
<tr id="row_48_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Cross__thread__task__loop.html" target="_self">flow::async::Cross_thread_task_loop</a></td><td class="desc">Concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> that is able to efficiently schedule <code>Task</code>s within a given <code>Op</code> to execute in different threads while still properly avoiding concurrency </td></tr>
<tr id="row_48_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Op__list.html" target="_self">flow::async::Op_list</a></td><td class="desc">Simple, immutable <code>vector</code>-like sequence of N opaque <a class="el" href="namespaceflow_1_1async.html#a024042c64b7dc544a7a5587afa4b1949" title="An object of this opaque type represents a collection of 1 or more async::Task, past or future,...">async::Op</a> objects, usually corresponding to N worker threads, with typically used operations such as <code>[index]</code> and random <code>Op</code> selection </td></tr>
<tr id="row_48_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Segregated__thread__task__loop.html" target="_self">flow::async::Segregated_thread_task_loop</a></td><td class="desc">Concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> that uses the legacy pin-<code>Task</code>s-within-1-<code>Op</code>-to-1-thread method of achieving required non-concurrency of <code>Task</code>s </td></tr>
<tr id="row_48_4_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_48_4_" class="arrow" onclick="toggleFolder('48_4_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Single__thread__task__loop.html" target="_self">flow::async::Single_thread_task_loop</a></td><td class="desc">A <code><a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a></code>-related adapter-style class that represents a single-thread task loop; essentially it is pleasant syntactic sugar around a <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> impl that cuts out concepts that become irrelevant with only one thread involved </td></tr>
<tr id="row_48_4_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Timed__single__thread__task__loop.html" target="_self">flow::async::Timed_single_thread_task_loop</a></td><td class="desc">Identical to <a class="el" href="classflow_1_1async_1_1Single__thread__task__loop.html" title="A Concurrent_task_loop-related adapter-style class that represents a single-thread task loop; essenti...">Single_thread_task_loop</a>, but all tasks posted through it are automatically timed, with the result accessible via <a class="el" href="classflow_1_1async_1_1Timed__single__thread__task__loop.html#ae429fb31d17d422306cd9da398e53e5c" title="See Timed_concurrent_task_loop_impl::accumulated_time().">accumulated_time()</a> </td></tr>
<tr id="row_48_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Task__qing__thread.html" target="_self">flow::async::Task_qing_thread</a></td><td class="desc">Internally used building block of various concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> subclasses that encapsulates a thread that spawns at construction time and a dedicated-or-shared <a class="el" href="namespaceflow_1_1util.html#ac3e89a8a271b0ddc76ac2a0ce488dea4" title="Short-hand for boost.asio event service, the central class of boost.asio.">util::Task_engine</a> (a/k/a boost.asio <code>io_context</code>) <code>run()</code>ning in that new thread </td></tr>
<tr id="row_48_6_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Config__manager.html" target="_self">flow::cfg::Config_manager&lt; S_d_value_set &gt;</a></td><td class="desc">Manages a config setup, intended for a single daemon process, by maintaining 1 or more set(s) of static config and dynamic config, each, via that number of <code><a class="el" href="classflow_1_1cfg_1_1Option__set.html" title="The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a giv...">Option_set</a>&lt;&gt;</code>-ready raw value <code>struct</code> types supplied by the user as template arguments </td></tr>
<tr id="row_48_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Option__set.html" target="_self">flow::cfg::Option_set&lt; Value_set &gt;</a></td><td class="desc">The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a given simple config-holding object, of the type <code>Value_set</code>, a template argument to this class template </td></tr>
<tr id="row_48_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Async__file__logger.html" target="_self">flow::log::Async_file_logger</a></td><td class="desc">An implementation of <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> that logs messages to a given file-system path but never blocks any logging thread for file I/O; suitable for heavy-duty file logging </td></tr>
<tr id="row_48_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Serial__file__logger.html" target="_self">flow::log::Serial_file_logger</a></td><td class="desc">An internal-use implementation of <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> that logs messages to a given file-system path, blocking the calling thread while the I/O occurs, and usable safely only if logging occurs non-concurrently </td></tr>
<tr id="row_48_10_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Congestion__control__classic__data.html" target="_self">flow::net_flow::Congestion_control_classic_data</a></td><td class="desc">Utility class for use by <a class="el" href="classflow_1_1net__flow_1_1Congestion__control__strategy.html" title="The abstract interface for a per-socket module that determines the socket&#39;s congestion control behavi...">Congestion_control_strategy</a> implementations that implements congestion window and slow start threshold storage and classic Reno-style "slow start" and "congestion
avoidance" algorithms </td></tr>
<tr id="row_48_11_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_48_11_" class="arrow" onclick="toggleFolder('48_11_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Congestion__control__strategy.html" target="_self">flow::net_flow::Congestion_control_strategy</a></td><td class="desc">The abstract interface for a per-socket module that determines the socket's congestion control behavior </td></tr>
<tr id="row_48_11_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Congestion__control__classic.html" target="_self">flow::net_flow::Congestion_control_classic</a></td><td class="desc">Classic congestion control, based on Reno (TCP RFC 5681), with congestion avoidance, slow start, and congestion window halving (etc.) upon a loss event </td></tr>
<tr id="row_48_11_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Congestion__control__classic__with__bandwidth__est.html" target="_self">flow::net_flow::Congestion_control_classic_with_bandwidth_est</a></td><td class="desc">Classic congestion control but with backoff to bandwidth estimate-based pipe size </td></tr>
<tr id="row_48_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Drop__timer.html" target="_self">flow::net_flow::Drop_timer</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> class that maintains the Drop Timer for DATA packet(s) to have been sent out over a connection but not yet acknowledged by the receiver </td></tr>
<tr id="row_48_13_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Event__set.html" target="_self">flow::net_flow::Event_set</a></td><td class="desc">A user-set collection of sockets and desired conditions on those sockets (such as: "socket has data
to read"), with the ability to wait for those conditions to become true and signal the user when so </td></tr>
<tr id="row_48_14_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_48_14_" class="arrow" onclick="toggleFolder('48_14_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html" target="_self">flow::net_flow::Low_lvl_packet</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> <code>struct</code> that encapsulates the Flow-protocol low-level packet structure and serves as the super-type for all specific packet types, represented by derived <code>struct</code>s like <a class="el" href="structflow_1_1net__flow_1_1Ack__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level ACK packet.">Ack_packet</a>, <a class="el" href="structflow_1_1net__flow_1_1Rst__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level RST packet.">Rst_packet</a>, etc </td></tr>
<tr id="row_48_14_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Ack__packet.html" target="_self">flow::net_flow::Ack_packet</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> <code>struct</code> that encapsulates the Flow-protocol low-level ACK packet </td></tr>
<tr id="row_48_14_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Data__packet.html" target="_self">flow::net_flow::Data_packet</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> <code>struct</code> that encapsulates the Flow-protocol low-level DATA packet </td></tr>
<tr id="row_48_14_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Rst__packet.html" target="_self">flow::net_flow::Rst_packet</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> <code>struct</code> that encapsulates the Flow-protocol low-level RST packet </td></tr>
<tr id="row_48_14_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Syn__ack__ack__packet.html" target="_self">flow::net_flow::Syn_ack_ack_packet</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> <code>struct</code> that encapsulates the Flow-protocol low-level SYN_ACK_ACK packet </td></tr>
<tr id="row_48_14_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Syn__ack__packet.html" target="_self">flow::net_flow::Syn_ack_packet</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> <code>struct</code> that encapsulates the Flow-protocol low-level SYN_ACK packet </td></tr>
<tr id="row_48_14_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Syn__packet.html" target="_self">flow::net_flow::Syn_packet</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> <code>struct</code> that encapsulates the Flow-protocol low-level SYN packet </td></tr>
<tr id="row_48_15_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Net__env__simulator.html" target="_self">flow::net_flow::Net_env_simulator</a></td><td class="desc">Objects of this class can be fed to <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> to make it internally simulate network conditions like loss, latency, and data duplication </td></tr>
<tr id="row_48_16_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_48_16_" class="arrow" onclick="toggleFolder('48_16_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Node.html" target="_self">flow::net_flow::Node</a></td><td class="desc">An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a distinct IP address and UDP port; and (2) it speaks the Flow protocol over a UDP transport layer </td></tr>
<tr id="row_48_16_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1asio_1_1Node.html" target="_self">flow::net_flow::asio::Node</a></td><td class="desc">A subclass of <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">net_flow::Node</a> that adds the ability to easily and directly use <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> sockets in general boost.asio event loops </td></tr>
<tr id="row_48_17_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" target="_self">flow::net_flow::Peer_socket</a></td><td class="desc">A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support </td></tr>
<tr id="row_48_18_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Port__space.html" target="_self">flow::net_flow::Port_space</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> class that maintains the available Flow-protocol port space, somewhat similarly to the classic TCP or UDP port scheme </td></tr>
<tr id="row_48_19_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Send__bandwidth__estimator.html" target="_self">flow::net_flow::Send_bandwidth_estimator</a></td><td class="desc">A per-Peer_socket module that tries to estimate the bandwidth available to the outgoing flow </td></tr>
<tr id="row_48_20_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Sequence__number_1_1Generator.html" target="_self">flow::net_flow::Sequence_number::Generator</a></td><td class="desc">An object of this type generates a series of initial sequence numbers (ISN) that are meant to be sufficiently secure to protect against ISN attacks and confusion among different connections between the same endpoints occurring in series </td></tr>
<tr id="row_48_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Server__socket.html" target="_self">flow::net_flow::Server_socket</a></td><td class="desc">A server socket able to listen on a single Flow port for incoming connections and return peer sockets (<a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> objects) to the local user once such connections are established </td></tr>
<tr id="row_48_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Socket__buffer.html" target="_self">flow::net_flow::Socket_buffer</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> class that implements a socket buffer, as used by <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> for Send and Receive buffers </td></tr>
<tr id="row_48_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1perf_1_1Checkpointing__timer.html" target="_self">flow::perf::Checkpointing_timer</a></td><td class="desc">The central class in the <code>perf</code> Flow module, this efficiently times the user's operation, with a specified subset of timing methods; and with the optional ability to time intermediate <em>checkpoints</em> within the overall operation </td></tr>
<tr id="row_48_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1perf_1_1Checkpointing__timer_1_1Aggregator.html" target="_self">flow::perf::Checkpointing_timer::Aggregator</a></td><td class="desc">This companion/inner class of <a class="el" href="classflow_1_1perf_1_1Checkpointing__timer.html" title="The central class in the perf Flow module, this efficiently times the user&#39;s operation,...">Checkpointing_timer</a> provides aggregation of results from many <code><a class="el" href="classflow_1_1perf_1_1Checkpointing__timer.html" title="The central class in the perf Flow module, this efficiently times the user&#39;s operation,...">Checkpointing_timer</a></code>s each measuring some user operation being repeated many times; particularly when the operation consists of multiple steps (checkpoints) of interest </td></tr>
<tr id="row_48_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" target="_self">flow::util::Blob_with_log_context&lt; S_SHARING_ALLOWED &gt;</a></td><td class="desc"><a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> that works in regular heap (and is itself placed in heap or stack) and memorizes a <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a>, enabling easier logging albeit with a small perf trade-off </td></tr>
<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1log_1_1Async__file__logger_1_1Log__request.html" target="_self">flow::log::Async_file_logger::Log_request</a></td><td class="desc">In addition to the task object (function) itself, these are the data placed onto the queue of <code>m_async_worker</code> tasks for a particular <code><a class="el" href="classflow_1_1log_1_1Async__file__logger.html#aa557c0f55c1044161acc8fb54c115a3e" title="Implements interface method by asynchronously logging the message and some subset of the metadata in ...">do_log()</a></code> call, to be used by that task and then freed immediately upon logging of the message to file </td></tr>
<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1log_1_1Msg__metadata.html" target="_self">flow::log::Msg_metadata</a></td><td class="desc">Simple data store containing all of the information generated at every logging call site by <a class="el" href="namespaceflow_1_1log.html" title="Flow module providing logging functionality.">flow::log</a>, except the message itself, which is passed to <a class="el" href="classflow_1_1log_1_1Logger.html#a934667f16dd6ca0841e521296ab3a6e2" title="Given a message and its severity, logs that message and possibly severity WITHOUT checking whether it...">Logger::do_log()</a> assuming <a class="el" href="classflow_1_1log_1_1Logger.html#ac8a2e7a33fe3fbc0c29ead62ed98c022" title="Given attributes of a hypothetical message that would be logged, return true if that message should b...">Logger::should_log()</a> had returned <code>true</code> </td></tr>
<tr id="row_51_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Node__options.html" target="_self">flow::net_flow::Node_options</a></td><td class="desc">A set of low-level options affecting a single Flow <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a>, including <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> objects and other objects subsequently generated by that Flow <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> </td></tr>
<tr id="row_52_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_52_" class="arrow" onclick="toggleFolder('52_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><b>boost::noncopyable</b></td><td class="desc"></td></tr>
<tr id="row_52_0_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_52_0_" class="arrow" onclick="toggleFolder('52_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" target="_self">flow::util::Rnd_gen_uniform_range&lt; std::size_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_52_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range__mt.html" target="_self">flow::util::Rnd_gen_uniform_range_mt&lt; std::size_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_52_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" target="_self">flow::util::Rnd_gen_uniform_range&lt; Peer_socket::security_token_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_52_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Cross__thread__task__loop.html" target="_self">flow::async::Cross_thread_task_loop</a></td><td class="desc">Concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> that is able to efficiently schedule <code>Task</code>s within a given <code>Op</code> to execute in different threads while still properly avoiding concurrency </td></tr>
<tr id="row_52_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Segregated__thread__task__loop.html" target="_self">flow::async::Segregated_thread_task_loop</a></td><td class="desc">Concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> that uses the legacy pin-<code>Task</code>s-within-1-<code>Op</code>-to-1-thread method of achieving required non-concurrency of <code>Task</code>s </td></tr>
<tr id="row_52_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Task__qing__thread.html" target="_self">flow::async::Task_qing_thread</a></td><td class="desc">Internally used building block of various concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> subclasses that encapsulates a thread that spawns at construction time and a dedicated-or-shared <a class="el" href="namespaceflow_1_1util.html#ac3e89a8a271b0ddc76ac2a0ce488dea4" title="Short-hand for boost.asio event service, the central class of boost.asio.">util::Task_engine</a> (a/k/a boost.asio <code>io_context</code>) <code>run()</code>ning in that new thread </td></tr>
<tr id="row_52_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Option__set.html" target="_self">flow::cfg::Option_set&lt; Value_set &gt;</a></td><td class="desc">The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a given simple config-holding object, of the type <code>Value_set</code>, a template argument to this class template </td></tr>
<tr id="row_52_6_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_52_6_" class="arrow" onclick="toggleFolder('52_6_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Logger.html" target="_self">flow::log::Logger</a></td><td class="desc">Interface that the user should implement, passing the implementing <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> into logging classes (Flow's own classes like <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">net_flow::Node</a>; and user's own logging classes) at construction (plus free/<code>static</code> logging functions) </td></tr>
<tr id="row_52_6_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Async__file__logger.html" target="_self">flow::log::Async_file_logger</a></td><td class="desc">An implementation of <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> that logs messages to a given file-system path but never blocks any logging thread for file I/O; suitable for heavy-duty file logging </td></tr>
<tr id="row_52_6_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Buffer__logger.html" target="_self">flow::log::Buffer_logger</a></td><td class="desc">An implementation of <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> that logs messages to an internal <code>std::string</code> buffer and provides read-only access to this buffer (for example, if one wants to write out its contents when exiting program) </td></tr>
<tr id="row_52_6_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Serial__file__logger.html" target="_self">flow::log::Serial_file_logger</a></td><td class="desc">An internal-use implementation of <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> that logs messages to a given file-system path, blocking the calling thread while the I/O occurs, and usable safely only if logging occurs non-concurrently </td></tr>
<tr id="row_52_6_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Simple__ostream__logger.html" target="_self">flow::log::Simple_ostream_logger</a></td><td class="desc">An implementation of <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> that logs messages to the given <code>ostream</code>s (e.g., <code>cout</code> or an <code>ofstream</code> for a file) </td></tr>
<tr id="row_52_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Ostream__log__msg__writer.html" target="_self">flow::log::Ostream_log_msg_writer</a></td><td class="desc">Utility class, each object of which wraps a given <code>ostream</code> and outputs discrete messages to it adorned with time stamps and other formatting such as separating newlines </td></tr>
<tr id="row_52_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Thread__local__string__appender.html" target="_self">flow::log::Thread_local_string_appender</a></td><td class="desc">Internal <a class="el" href="namespaceflow_1_1log.html" title="Flow module providing logging functionality.">flow::log</a> class that facilitates a more efficient way to get <a class="el" href="namespaceflow_1_1util.html#a8afd30c50bcd670d45442df49d1da484" title="Writes to the specified string, as if the given arguments were each passed, via &lt;&lt; in sequence,...">util::ostream_op_to_string()</a> behavior by allowing each thread to repeatedly reuse the structures that function creates from scratch on stack each time it is invoked; furthermore each logging entity is allotted a separate such set of structures to enable each entity to not affect the streams of other entities </td></tr>
<tr id="row_52_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Congestion__control__classic__data.html" target="_self">flow::net_flow::Congestion_control_classic_data</a></td><td class="desc">Utility class for use by <a class="el" href="classflow_1_1net__flow_1_1Congestion__control__strategy.html" title="The abstract interface for a per-socket module that determines the socket&#39;s congestion control behavi...">Congestion_control_strategy</a> implementations that implements congestion window and slow start threshold storage and classic Reno-style "slow start" and "congestion
avoidance" algorithms </td></tr>
<tr id="row_52_10_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Congestion__control__selector.html" target="_self">flow::net_flow::Congestion_control_selector</a></td><td class="desc">Namespace-like class that enables an <code>enum</code>-based selection of the <a class="el" href="classflow_1_1net__flow_1_1Congestion__control__strategy.html" title="The abstract interface for a per-socket module that determines the socket&#39;s congestion control behavi...">Congestion_control_strategy</a> interface implementation to use for a given socket (for programmatic socket options) and facilitates stream I/O of these enums (allowing parsing and outputting these socket options) </td></tr>
<tr id="row_52_11_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Congestion__control__strategy.html" target="_self">flow::net_flow::Congestion_control_strategy</a></td><td class="desc">The abstract interface for a per-socket module that determines the socket's congestion control behavior </td></tr>
<tr id="row_52_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Drop__timer.html" target="_self">flow::net_flow::Drop_timer</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> class that maintains the Drop Timer for DATA packet(s) to have been sent out over a connection but not yet acknowledged by the receiver </td></tr>
<tr id="row_52_13_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Event__set.html" target="_self">flow::net_flow::Event_set</a></td><td class="desc">A user-set collection of sockets and desired conditions on those sockets (such as: "socket has data
to read"), with the ability to wait for those conditions to become true and signal the user when so </td></tr>
<tr id="row_52_14_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html" target="_self">flow::net_flow::Low_lvl_packet</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> <code>struct</code> that encapsulates the Flow-protocol low-level packet structure and serves as the super-type for all specific packet types, represented by derived <code>struct</code>s like <a class="el" href="structflow_1_1net__flow_1_1Ack__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level ACK packet.">Ack_packet</a>, <a class="el" href="structflow_1_1net__flow_1_1Rst__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level RST packet.">Rst_packet</a>, etc </td></tr>
<tr id="row_52_15_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet_1_1Aux__raw__data.html" target="_self">flow::net_flow::Low_lvl_packet::Aux_raw_data</a></td><td class="desc">Helper data store type for storing binary data needed by <a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html#aa2b4697824bd3ca88970c67d9a1f3e76" title="Serializes the current logical packet data from *this into the given Const_buffer_sequence,...">serialize_to_raw_data()</a>, when certains bits are not already represented by the public data members present in <code>struct</code> <a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level packet structure and serves as...">Low_lvl_packet</a> </td></tr>
<tr id="row_52_16_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Net__env__simulator.html" target="_self">flow::net_flow::Net_env_simulator</a></td><td class="desc">Objects of this class can be fed to <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> to make it internally simulate network conditions like loss, latency, and data duplication </td></tr>
<tr id="row_52_17_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Node.html" target="_self">flow::net_flow::Node</a></td><td class="desc">An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a distinct IP address and UDP port; and (2) it speaks the Flow protocol over a UDP transport layer </td></tr>
<tr id="row_52_18_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" target="_self">flow::net_flow::Peer_socket</a></td><td class="desc">A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support </td></tr>
<tr id="row_52_19_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket_1_1Received__packet.html" target="_self">flow::net_flow::Peer_socket::Received_packet</a></td><td class="desc">Metadata (and data, if retransmission is on) for a packet that has been received (and, if retransmission is off, copied to Receive buffer) </td></tr>
<tr id="row_52_20_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket_1_1Sent__packet.html" target="_self">flow::net_flow::Peer_socket::Sent_packet</a></td><td class="desc">Metadata (and data, if retransmission is on) for a packet that has been sent one (if retransmission is off) or possibly more (if on) times </td></tr>
<tr id="row_52_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html" target="_self">flow::net_flow::Peer_socket_receive_stats_accumulator</a></td><td class="desc">A class that keeps a <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html" title="A data store that keeps stats about the incoming direction of a Peer_socket connection to another Flo...">Peer_socket_receive_stats</a> data store, includes methods to conveniently accumulate data in it, and provides output to <code>ostream</code> </td></tr>
<tr id="row_52_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__send__stats__accumulator.html" target="_self">flow::net_flow::Peer_socket_send_stats_accumulator</a></td><td class="desc">A class that keeps a <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__send__stats.html" title="A data store that keeps stats about the outgoing direction of a Peer_socket connection to another Flo...">Peer_socket_send_stats</a> data store, includes methods to conveniently accumulate data in it, and provides output to <code>ostream</code> </td></tr>
<tr id="row_52_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Port__space.html" target="_self">flow::net_flow::Port_space</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> class that maintains the available Flow-protocol port space, somewhat similarly to the classic TCP or UDP port scheme </td></tr>
<tr id="row_52_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Send__bandwidth__estimator.html" target="_self">flow::net_flow::Send_bandwidth_estimator</a></td><td class="desc">A per-Peer_socket module that tries to estimate the bandwidth available to the outgoing flow </td></tr>
<tr id="row_52_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Send__pacing__data.html" target="_self">flow::net_flow::Send_pacing_data</a></td><td class="desc">The current outgoing packet pacing state, including queue of low-level packets to be sent, for a given <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> </td></tr>
<tr id="row_52_26_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Sequence__number_1_1Generator.html" target="_self">flow::net_flow::Sequence_number::Generator</a></td><td class="desc">An object of this type generates a series of initial sequence numbers (ISN) that are meant to be sufficiently secure to protect against ISN attacks and confusion among different connections between the same endpoints occurring in series </td></tr>
<tr id="row_52_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Server__socket.html" target="_self">flow::net_flow::Server_socket</a></td><td class="desc">A server socket able to listen on a single Flow port for incoming connections and return peer sockets (<a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> objects) to the local user once such connections are established </td></tr>
<tr id="row_52_28_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Socket__buffer.html" target="_self">flow::net_flow::Socket_buffer</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> class that implements a socket buffer, as used by <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> for Send and Receive buffers </td></tr>
<tr id="row_52_29_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1perf_1_1Checkpointing__timer_1_1Aggregator.html" target="_self">flow::perf::Checkpointing_timer::Aggregator</a></td><td class="desc">This companion/inner class of <a class="el" href="classflow_1_1perf_1_1Checkpointing__timer.html" title="The central class in the perf Flow module, this efficiently times the user&#39;s operation,...">Checkpointing_timer</a> provides aggregation of results from many <code><a class="el" href="classflow_1_1perf_1_1Checkpointing__timer.html" title="The central class in the perf Flow module, this efficiently times the user&#39;s operation,...">Checkpointing_timer</a></code>s each measuring some user operation being repeated many times; particularly when the operation consists of multiple steps (checkpoints) of interest </td></tr>
<tr id="row_52_30_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_52_30_" class="arrow" onclick="toggleFolder('52_30_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" target="_self">flow::util::Rnd_gen_uniform_range&lt; range_t &gt;</a></td><td class="desc">Simple, non-thread-safe uniform-range random number generator </td></tr>
<tr id="row_52_30_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range__mt.html" target="_self">flow::util::Rnd_gen_uniform_range_mt&lt; range_t &gt;</a></td><td class="desc">Identical to <a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" title="Simple, non-thread-safe uniform-range random number generator.">Rnd_gen_uniform_range</a> but safe for concurrent RNG given a single object </td></tr>
<tr id="row_52_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1util_1_1Scheduled__task__handle__state.html" target="_self">flow::util::Scheduled_task_handle_state</a></td><td class="desc">Internal-use data store used by <code>schedule[d]_task_*()</code>, each object containing the state relevant to a single call to either <a class="el" href="namespaceflow_1_1util.html#a74d4a66fb00055be4e1bd6ee98e04667" title="Schedule the given function to execute in a certain amount of time: A handy wrapper around Timer (asi...">schedule_task_from_now()</a> or <a class="el" href="namespaceflow_1_1util.html#aad8c8f7335eb892350dc386cb4be397e" title="Identical to schedule_task_from_now() except the time is specified in absolute terms.">schedule_task_at()</a> </td></tr>
<tr id="row_52_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1String__ostream.html" target="_self">flow::util::String_ostream</a></td><td class="desc">Similar to <code>ostringstream</code> but allows fast read-only access directly into the <code>std::string</code> being written; and some limited write access to that string </td></tr>
<tr id="row_53_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1util_1_1Noncopyable.html" target="_self">flow::util::Noncopyable</a></td><td class="desc">Useful as a no-unique-address private member to make a type noncopyable while keeping that type an aggregate (can be direct-initialized) </td></tr>
<tr id="row_54_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_54_" class="arrow" onclick="toggleFolder('54_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Null__interface.html" target="_self">flow::util::Null_interface</a></td><td class="desc">An empty interface, consisting of nothing but a default <code>virtual</code> destructor, intended as a boiler-plate-reducing base for any other (presumably <code>virtual</code>-method-having) class that would otherwise require a default <code>virtual</code> destructor </td></tr>
<tr id="row_54_0_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_54_0_" class="arrow" onclick="toggleFolder('54_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" target="_self">flow::async::Concurrent_task_loop</a></td><td class="desc">The core <a class="el" href="namespaceflow_1_1async.html" title="Flow module containing tools enabling multi-threaded event loops operating under the asynchronous-tas...">flow::async</a> interface, providing an optionally multi-threaded thread pool onto which runnable <code>Task</code>s, optionally arranged into concurrency-avoiding <code>Op</code>s, can be boost.asio-posted for subsequent execution </td></tr>
<tr id="row_54_0_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_54_0_0_" class="arrow" onclick="toggleFolder('54_0_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Timed__concurrent__task__loop__impl.html" target="_self">flow::async::Timed_concurrent_task_loop_impl&lt; std::atomic&lt; perf::duration_rep_t &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_54_0_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Timed__concurrent__task__loop.html" target="_self">flow::async::Timed_concurrent_task_loop</a></td><td class="desc">Decorates a general &ndash; potentially multi-threaded &ndash; <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> of any kind but with timing capabilities </td></tr>
<tr id="row_54_0_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Timed__concurrent__task__loop__impl.html" target="_self">flow::async::Timed_concurrent_task_loop_impl&lt; perf::duration_rep_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_54_0_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Cross__thread__task__loop.html" target="_self">flow::async::Cross_thread_task_loop</a></td><td class="desc">Concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> that is able to efficiently schedule <code>Task</code>s within a given <code>Op</code> to execute in different threads while still properly avoiding concurrency </td></tr>
<tr id="row_54_0_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Segregated__thread__task__loop.html" target="_self">flow::async::Segregated_thread_task_loop</a></td><td class="desc">Concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> that uses the legacy pin-<code>Task</code>s-within-1-<code>Op</code>-to-1-thread method of achieving required non-concurrency of <code>Task</code>s </td></tr>
<tr id="row_54_0_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Timed__concurrent__task__loop__impl.html" target="_self">flow::async::Timed_concurrent_task_loop_impl&lt; Time_accumulator &gt;</a></td><td class="desc">Decorator of a <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> with same or greater lifetime that accumulates time elapsed in any tasks posted or scheduled onto that loop </td></tr>
<tr id="row_54_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Single__thread__task__loop.html" target="_self">flow::async::Single_thread_task_loop</a></td><td class="desc">A <code><a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a></code>-related adapter-style class that represents a single-thread task loop; essentially it is pleasant syntactic sugar around a <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> impl that cuts out concepts that become irrelevant with only one thread involved </td></tr>
<tr id="row_54_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Logger.html" target="_self">flow::log::Logger</a></td><td class="desc">Interface that the user should implement, passing the implementing <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> into logging classes (Flow's own classes like <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">net_flow::Node</a>; and user's own logging classes) at construction (plus free/<code>static</code> logging functions) </td></tr>
<tr id="row_54_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Congestion__control__strategy.html" target="_self">flow::net_flow::Congestion_control_strategy</a></td><td class="desc">The abstract interface for a per-socket module that determines the socket's congestion control behavior </td></tr>
<tr id="row_54_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html" target="_self">flow::net_flow::Low_lvl_packet</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> <code>struct</code> that encapsulates the Flow-protocol low-level packet structure and serves as the super-type for all specific packet types, represented by derived <code>struct</code>s like <a class="el" href="structflow_1_1net__flow_1_1Ack__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level ACK packet.">Ack_packet</a>, <a class="el" href="structflow_1_1net__flow_1_1Rst__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level RST packet.">Rst_packet</a>, etc </td></tr>
<tr id="row_54_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Node.html" target="_self">flow::net_flow::Node</a></td><td class="desc">An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a distinct IP address and UDP port; and (2) it speaks the Flow protocol over a UDP transport layer </td></tr>
<tr id="row_54_6_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" target="_self">flow::net_flow::Peer_socket</a></td><td class="desc">A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support </td></tr>
<tr id="row_54_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Server__socket.html" target="_self">flow::net_flow::Server_socket</a></td><td class="desc">A server socket able to listen on a single Flow port for incoming connections and return peer sockets (<a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> objects) to the local user once such connections are established </td></tr>
<tr id="row_55_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1cfg_1_1Config__manager_1_1On__dynamic__change__func__handle.html" target="_self">flow::cfg::Config_manager&lt; S_d_value_set &gt;::On_dynamic_change_func_handle</a></td><td class="desc">Opaque handle for managing a dynamic config change callback </td></tr>
<tr id="row_56_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_56_" class="arrow" onclick="toggleFolder('56_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Option__set__base.html" target="_self">flow::cfg::Option_set_base</a></td><td class="desc">Un-templated base for <a class="el" href="classflow_1_1cfg_1_1Option__set.html" title="The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a giv...">Option_set</a> </td></tr>
<tr id="row_56_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Option__set.html" target="_self">flow::cfg::Option_set&lt; Value_set &gt;</a></td><td class="desc">The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a given simple config-holding object, of the type <code>Value_set</code>, a template argument to this class template </td></tr>
<tr id="row_57_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet_1_1Packet__type__info.html" target="_self">flow::net_flow::Low_lvl_packet::Packet_type_info</a></td><td class="desc">A simple, unmodifiable data store that contains the properties unique to each packet type a/k/a concrete sub-type of <a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level packet structure and serves as...">Low_lvl_packet</a> </td></tr>
<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__info.html" target="_self">flow::net_flow::Peer_socket_info</a></td><td class="desc">A data store that keeps stats about the a <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> connection </td></tr>
<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__options.html" target="_self">flow::net_flow::Peer_socket_options</a></td><td class="desc">A set of low-level options affecting a single <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> </td></tr>
<tr id="row_60_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_60_" class="arrow" onclick="toggleFolder('60_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html" target="_self">flow::net_flow::Peer_socket_receive_stats</a></td><td class="desc">A data store that keeps stats about the incoming direction of a <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> connection to another Flow-protocol <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> </td></tr>
<tr id="row_60_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html" target="_self">flow::net_flow::Peer_socket_receive_stats_accumulator</a></td><td class="desc">A class that keeps a <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html" title="A data store that keeps stats about the incoming direction of a Peer_socket connection to another Flo...">Peer_socket_receive_stats</a> data store, includes methods to conveniently accumulate data in it, and provides output to <code>ostream</code> </td></tr>
<tr id="row_61_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_61_" class="arrow" onclick="toggleFolder('61_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__send__stats.html" target="_self">flow::net_flow::Peer_socket_send_stats</a></td><td class="desc">A data store that keeps stats about the outgoing direction of a <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> connection to another Flow-protocol <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> </td></tr>
<tr id="row_61_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__send__stats__accumulator.html" target="_self">flow::net_flow::Peer_socket_send_stats_accumulator</a></td><td class="desc">A class that keeps a <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__send__stats.html" title="A data store that keeps stats about the outgoing direction of a Peer_socket connection to another Flo...">Peer_socket_send_stats</a> data store, includes methods to conveniently accumulate data in it, and provides output to <code>ostream</code> </td></tr>
<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Remote__endpoint.html" target="_self">flow::net_flow::Remote_endpoint</a></td><td class="desc">Represents the remote endpoint of a Flow-protocol connection; identifies the UDP endpoint of the remote <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> and the logical Flow-protocol port within that <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> </td></tr>
<tr id="row_63_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_63_" class="arrow" onclick="toggleFolder('63_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range__base.html" target="_self">flow::util::Rnd_gen_uniform_range_base</a></td><td class="desc">Base class for <a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" title="Simple, non-thread-safe uniform-range random number generator.">Rnd_gen_uniform_range</a> and <a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range__mt.html" title="Identical to Rnd_gen_uniform_range but safe for concurrent RNG given a single object.">Rnd_gen_uniform_range_mt</a> for various aliases and similar, so template arguments need not be involved </td></tr>
<tr id="row_63_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" target="_self">flow::util::Rnd_gen_uniform_range&lt; std::size_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_63_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" target="_self">flow::util::Rnd_gen_uniform_range&lt; Peer_socket::security_token_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_63_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" target="_self">flow::util::Rnd_gen_uniform_range&lt; range_t &gt;</a></td><td class="desc">Simple, non-thread-safe uniform-range random number generator </td></tr>
<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Scoped__setter.html" target="_self">flow::util::Scoped_setter&lt; Value &gt;</a></td><td class="desc">A simple RAII-pattern class template that, at construction, sets the specified location in memory to a specified value, memorizing the previous contents; and at destruction restores the value </td></tr>
<tr id="row_65_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket_1_1Sent__packet_1_1Sent__when.html" target="_self">flow::net_flow::Peer_socket::Sent_packet::Sent_when</a></td><td class="desc">Data store to keep timing related info when a packet is sent out </td></tr>
<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Sequence__number.html" target="_self">flow::net_flow::Sequence_number</a></td><td class="desc">An internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> sequence number identifying a piece of data </td></tr>
<tr id="row_67_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; Target_ptr, Const_target_ptr &gt;</a></td><td class="desc">Convenience class template that endows the given subclass <code>T</code> with nested aliases <code>Ptr</code> and <code>Const_ptr</code> aliased to <code>shared_ptr&lt;T&gt;</code> and <code>shared_ptr&lt;const T&gt;</code> respectively </td></tr>
<tr id="row_68_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_68_" class="arrow" onclick="toggleFolder('68_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Drop_timer &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_68_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Drop__timer.html" target="_self">flow::net_flow::Drop_timer</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> class that maintains the Drop Timer for DATA packet(s) to have been sent out over a connection but not yet acknowledged by the receiver </td></tr>
<tr id="row_69_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_69_" class="arrow" onclick="toggleFolder('69_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Event_set &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_69_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Event__set.html" target="_self">flow::net_flow::Event_set</a></td><td class="desc">A user-set collection of sockets and desired conditions on those sockets (such as: "socket has data
to read"), with the ability to wait for those conditions to become true and signal the user when so </td></tr>
<tr id="row_70_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_70_" class="arrow" onclick="toggleFolder('70_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Low_lvl_packet &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_70_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html" target="_self">flow::net_flow::Low_lvl_packet</a></td><td class="desc">Internal <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> <code>struct</code> that encapsulates the Flow-protocol low-level packet structure and serves as the super-type for all specific packet types, represented by derived <code>struct</code>s like <a class="el" href="structflow_1_1net__flow_1_1Ack__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level ACK packet.">Ack_packet</a>, <a class="el" href="structflow_1_1net__flow_1_1Rst__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level RST packet.">Rst_packet</a>, etc </td></tr>
<tr id="row_71_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_71_" class="arrow" onclick="toggleFolder('71_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Null_value_set &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_71_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1cfg_1_1Null__value__set.html" target="_self">flow::cfg::Null_value_set</a></td><td class="desc">Empty <code>struct</code> suitable as a <code>*_value_set</code> template arg for <a class="el" href="classflow_1_1cfg_1_1Config__manager.html" title="Manages a config setup, intended for a single daemon process, by maintaining 1 or more set(s) of stat...">Config_manager</a>, when a slot requires a <code>Value_set</code>, but you have no config to actually parse there </td></tr>
<tr id="row_72_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_72_" class="arrow" onclick="toggleFolder('72_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Peer_socket &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_72_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" target="_self">flow::net_flow::Peer_socket</a></td><td class="desc">A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support </td></tr>
<tr id="row_73_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_73_" class="arrow" onclick="toggleFolder('73_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Peer_socket::Received_packet &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_73_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket_1_1Received__packet.html" target="_self">flow::net_flow::Peer_socket::Received_packet</a></td><td class="desc">Metadata (and data, if retransmission is on) for a packet that has been received (and, if retransmission is off, copied to Receive buffer) </td></tr>
<tr id="row_74_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_74_" class="arrow" onclick="toggleFolder('74_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Peer_socket::Sent_packet &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_74_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket_1_1Sent__packet.html" target="_self">flow::net_flow::Peer_socket::Sent_packet</a></td><td class="desc">Metadata (and data, if retransmission is on) for a packet that has been sent one (if retransmission is off) or possibly more (if on) times </td></tr>
<tr id="row_75_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_75_" class="arrow" onclick="toggleFolder('75_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Server_socket &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_75_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Server__socket.html" target="_self">flow::net_flow::Server_socket</a></td><td class="desc">A server socket able to listen on a single Flow port for incoming connections and return peer sockets (<a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> objects) to the local user once such connections are established </td></tr>
<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Event__set_1_1Socket__as__any__equals.html" target="_self">flow::net_flow::Event_set::Socket_as_any_equals</a></td><td class="desc">Equality predicate class used in storing various sockets of types wrapped as <code>boost::any</code>s in the <a class="el" href="classflow_1_1net__flow_1_1Event__set.html#a592b3ce6602051bd9994216041a3cbdc" title="A set of sockets of one type, used to communicate sets of desired and resulting events in various Eve...">Sockets</a> type </td></tr>
<tr id="row_77_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Event__set_1_1Socket__as__any__hash.html" target="_self">flow::net_flow::Event_set::Socket_as_any_hash</a></td><td class="desc">Hasher class used in storing various sockets of types wrapped as <code>boost::any</code>s in the <a class="el" href="classflow_1_1net__flow_1_1Event__set.html#a592b3ce6602051bd9994216041a3cbdc" title="A set of sockets of one type, used to communicate sets of desired and resulting events in various Eve...">Sockets</a> type </td></tr>
<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Node_1_1Socket__id.html" target="_self">flow::net_flow::Node::Socket_id</a></td><td class="desc">The data nugget uniquely identifying a peer-to-peer connection from a remote endpoint to a port in this <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> </td></tr>
<tr id="row_79_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_79_" class="arrow" onclick="toggleFolder('79_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classboost_1_1system_1_1system__error.html" target="_self">boost::system::system_error</a></td><td class="desc"></td></tr>
<tr id="row_79_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1error_1_1Runtime__error.html" target="_self">flow::error::Runtime_error</a></td><td class="desc">An <code>std::runtime_error</code> (which is an <code>std::exception</code>) that stores an <a class="el" href="namespaceflow.html#a29eaaa9d0fac4ce87d8b969222dbed09" title="Short-hand for a boost.system error code (which basically encapsulates an integer/enum error code and...">Error_code</a> </td></tr>
<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1log_1_1Async__file__logger_1_1Throttling__cfg.html" target="_self">flow::log::Async_file_logger::Throttling_cfg</a></td><td class="desc">Controls behavior of the throttling algorithm as described in <a class="el" href="classflow_1_1log_1_1Async__file__logger.html" title="An implementation of Logger that logs messages to a given file-system path but never blocks any loggi...">Async_file_logger</a> doc header Throttling section </td></tr>
<tr id="row_81_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1perf_1_1Time__pt__set.html" target="_self">flow::perf::Time_pt_set</a></td><td class="desc">Convenience wrapper around an <code>array&lt;Time_pt, N&gt;</code>, which stores a time point for each of the N possible clock types in <a class="el" href="namespaceflow_1_1perf.html#ad61fb186191e4bb824d14601d11a2eb0" title="Clock types supported by flow::perf module facilities, perf::Checkpointing_timer in particular.">perf::Clock_type</a> </td></tr>
<tr id="row_82_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_82_" class="arrow" onclick="toggleFolder('82_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Unique__id__holder.html" target="_self">flow::util::Unique_id_holder</a></td><td class="desc">Each object of this class stores (at construction) and returns (on demand) a numeric ID unique from all other objects of the same class ever constructed, across all time from program start to end </td></tr>
<tr id="row_82_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Logger.html" target="_self">flow::log::Logger</a></td><td class="desc">Interface that the user should implement, passing the implementing <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> into logging classes (Flow's own classes like <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">net_flow::Node</a>; and user's own logging classes) at construction (plus free/<code>static</code> logging functions) </td></tr>
<tr id="row_83_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Verbosity__config.html" target="_self">flow::log::Verbosity_config</a></td><td class="desc">Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from a config source (like an options file) in concise form and apply it to a <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">log::Config</a> object </td></tr>
<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbool.html" target="_self">bool</a></td><td class="desc"></td></tr>
<tr id="row_85_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classboost_1_1random_1_1uniform__int__distribution_3_01Peer__socket_1_1security__token__t_01_4.html" target="_self">uniform_int_distribution&lt; Peer_socket::security_token_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classboost_1_1random_1_1uniform__int__distribution_3_01std_1_1size__t_01_4.html" target="_self">uniform_int_distribution&lt; std::size_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_87_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classvalue__for__exposition_3_01Component__config_01_4.html" target="_self">value_for_exposition&lt; Component_config &gt;</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Mar 28 2025 22:55:36 for Flow by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
